package com.clickpaas.governmentcloud.config;//package com.clickpaas.governmentcloud.config;
//
//import java.io.PrintWriter;
//import java.util.Arrays;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import org.springframework.http.HttpEntity;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.HttpMethod;
//import org.springframework.http.HttpStatus;
//import org.springframework.http.MediaType;
//import org.springframework.http.ResponseEntity;
//import org.springframework.web.client.RestTemplate;
//import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//
//import lombok.extern.slf4j.Slf4j;
//
///**
// * @Description
// * @Author Fangyanjie
// * @Date 2020/4/17 3:55 下午
// */
//@Slf4j
//public class MyIntercepter extends HandlerInterceptorAdapter {
//
//    String epidemic = "4025";
//
//    //true放行，false拦截
//    @Override
//    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//        String tokenId = request.getHeader("tg-token");
//        try {
//            String uri = "http://app.clickpaas.xforceplus.com/api/eadmin/tenant/obtainUserInfo?_lang=zh-CN&_timezone=UTC%2B8";
//            RestTemplate restTemplate = new RestTemplate();
//            HttpHeaders headers = new HttpHeaders();
//            headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
//            headers.set("Cookie", "tokenId=" + tokenId);
//
//            HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);
//            ResponseEntity<Object> result = restTemplate.exchange(uri, HttpMethod.GET, entity, Object.class);
//            if (result.getStatusCode() == HttpStatus.OK) {
//                Object body = result.getBody();
//                if (body != null) {
//                    String jsonString = JSON.toJSONString(body);
//                    JSONObject jsonObject = JSON.parseObject(jsonString, JSONObject.class);
//
//                    String code = jsonObject.getString("code");
//                    if ("200".equals(code)) {
//                        Object data = jsonObject.get("data");
//                        if (data != null) {
//                            String s = JSON.toJSONString(data);
//                            JSONObject jsonObj = JSON.parseObject(s, JSONObject.class);
//                            String enterpriseId = jsonObj.getString("enterpriseId");
//                            if (enterpriseId != null && !"".equals(enterpriseId) && epidemic.contains(enterpriseId)) {
//                                log.info("放行：tokenId为--->" + tokenId + "，" + "enterpriseId为：" + enterpriseId);
//                                return true;
//                            } else {
//                                log.info("拦截：tokenId为--->" + tokenId + "，" + "enterpriseId为：" + enterpriseId);
//                                response.setCharacterEncoding("UTF-8");
//                                response.setContentType("application/json; charset=utf-8");
//                                PrintWriter out = null;
//                                try {
//                                    JSONObject res = new JSONObject();
//                                    res.put("success", "false");
//                                    res.put("code", "403");
//                                    res.put("msg", "访问无权限-拦截");
//                                    out = response.getWriter();
//                                    out.append(res.toString());
//                                } catch (Exception ex) {
//                                    response.sendError(500);
//                                }
//                                return false;
//                            }
//                        }
//                    }
//                }
//            }
//        } catch (Exception e) {
//            log.info("异常拦截：tokenId为=》" + tokenId);
//
//            response.setCharacterEncoding("UTF-8");
//            response.setContentType("application/json; charset=utf-8");
//            PrintWriter out = null;
//            try {
//                JSONObject res = new JSONObject();
//                res.put("success", "false");
//                res.put("code", "403");
//                res.put("msg", "访问无权限-拦截");
//                out = response.getWriter();
//                out.append(res.toString());
//            } catch (Exception ex) {
//                response.sendError(500);
//            }
//            return false;
//        }
//        log.info("外层拦截：tokenId为--->" + tokenId);
//        return false;
//    }
//
//
//}